/*
moxl - Modular XML Library
Copyright (c) 2007, Malcolm Sparks

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
package moxl.compare;

import moxl.dom.QualifiedName;

public class ElementNameDifference implements DocumentDifference
{
	private final String message;

	public ElementNameDifference(QualifiedName first, QualifiedName second)
	{
		if (first.getNamespace().equals(second.getNamespace()))
        {
	        if (first.getLocalPart().equals(second.getLocalPart()))
            {
	        	throw new IllegalStateException("Don't know how these elements differ: " + first + " versus " + second);
	        }
            else
            {
	        	this.message = "Elements differ in local name: " + first.getLocalPart() + " versus " + second.getLocalPart();
	        }
        }
        else
        {
			this.message = "Elements differ in namespace: " + first.getNamespace() + " versus " + second.getNamespace();
		}
	}

	@Override
	public String toString()
	{
		return message;
	}
}
